package eventos.abrir;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import controlador.IControladorAtributo;


import vista.ventanas.SubVentanaConPanelAtributos;
import vista.ventanas.VentanaAtributo;
import eventos.EventoQuitarAtributo;
import eventos.aceptar.EventoAceptarAtributo;

public class EventoAbrirVentanaAtributo extends MouseAdapter 
{
	private SubVentanaConPanelAtributos ventanaPadre;
	private IControladorAtributo controlador;
	
	public EventoAbrirVentanaAtributo(SubVentanaConPanelAtributos ventanaPadre, IControladorAtributo controlador) 
	{
		super();
		this.ventanaPadre = ventanaPadre;
		this.controlador = controlador;
	}

	public void mouseClicked(MouseEvent e)
	{
		VentanaAtributo ventana = new VentanaAtributo(this.ventanaPadre, this.controlador.getTipoDeAtributos());

		EventoAceptarAtributo eventoAceptar = new EventoAceptarAtributo(this.ventanaPadre, ventana);
		ventana.escucharEventosBotonAceptar(eventoAceptar);
		
		agregarEventos(ventana);

		ventana.setVisible(true);
	}

	protected void agregarEventos(VentanaAtributo ventana)
	{
		EventoAbrirVentanaAtributo eventoAbrirVentanaAtributo = new EventoAbrirVentanaAtributo(ventana, this.controlador);
		ventana.escucharEventoNuevoAtributo(eventoAbrirVentanaAtributo);
		
		EventoQuitarAtributo eventoQuitarAtributo = new EventoQuitarAtributo(ventana);
		ventana.escucharEventoEliminarAtributo(eventoQuitarAtributo);
		
		EventoEditarAtributo eventoEditarAtributo = new EventoEditarAtributo(ventana, controlador);
		ventana.escucharEventoEditarAtributo(eventoEditarAtributo);
	}
	
	protected IControladorAtributo getControlador(){
		return this.controlador;
	}
	
	protected SubVentanaConPanelAtributos getVentanaPadre(){
		return this.ventanaPadre;
	}
}
